At present, packet communication in which data is transmitted or received by the packet is widely used. With packet communication, data can be encrypted by the packet in order to ensure data security and integrity. In the field of IP (Internet Protocol) packet communication, for example, the technique of IPsec for encrypting an IP data packet by a common key cryptosystem and transmitting it is known (see, for example, (literature 1) Internet Engineering Task Force (IETF), “Using Advanced Encryption Standard (AES) CCM Mode with IPsec Encapsulating Security Payload (ESP)”, RFC 4309.). In the field of fixed radio communication or mobile radio communication a technique for encrypting a data packet by a common key cryptosystem is also known (see, for example, (literature 2) The Institute of Electrical and Electronics Engineers (IEEE), “IEEE Standard for Local and Metropolitan Area Networks Part 16: Air Interface for Fixed Broadband Wireless Access Systems”, IEEE802.16-2004. or (literature 3) The Institute of Electrical and Electronics Engineers (IEEE), “IEEE Standard for Local and Metropolitan Area Networks Part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems”, IEEE802.16e-2005.).
A data packet can be transmitted by mapping it to a frame which is a determined communication unit in a lower communication layer. With radio communication, for example, a data packet can be mapped to a radio frame in a physical layer. One or more data packets can be included in a frame.
By the way, some encryption methods use a bit string called an initialization vector in addition to a cryptographic key. Even if plaintexts (data before encryption) are the same and cryptographic keys are the same, different cryptograms (data after encryption) can be obtained by the use of different initialization vectors. That is to say, a decrease in safety caused by the repetitive use of the same cryptographic key can be prevented by the use of an initialization vector.
With the techniques described in the above literature 1 through 3, a data packet is encrypted at a sending end by the use of a common key and an initialization vector generated for each specific data packet. Information (4-byte bit string, for example) regarding the initialization vector used for the encryption is added to the encrypted data packet and is transmitted from the sending end. With this method, however, data packet encryption causes an increase in the amount of communication.